From cd403883c13bb5a5fe935d74bc0ea352073579ca Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Fri, 7 Oct 2005 09:37:41 -0600 Subject: [PATCH] Fix incorrect re-enablement of interrupts (found by Tristan Gingold) --- xen/arch/ia64/xen/vcpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/ia64/xen/vcpu.c b/xen/arch/ia64/xen/vcpu.c index c79fcb7df1..769892b2b4 100644 --- a/xen/arch/ia64/xen/vcpu.c +++ b/xen/arch/ia64/xen/vcpu.c @@ -1043,9 +1043,10 @@ BOOLEAN vcpu_timer_expired(VCPU *vcpu) void vcpu_safe_set_itm(unsigned long val) { unsigned long epsilon = 100; + unsigned long flags; UINT64 now = ia64_get_itc(); - local_irq_disable(); + local_irq_save(flags); while (1) { //printf("*** vcpu_safe_set_itm: Setting itm to %lx, itc=%lx\n",val,now); ia64_set_itm(val); @@ -1053,7 +1054,7 @@ void vcpu_safe_set_itm(unsigned long val) val = now + epsilon; epsilon <<= 1; } - local_irq_enable(); + local_irq_restore(flags); } void vcpu_set_next_timer(VCPU *vcpu) -- 2.30.2